// pages/user_info/user_info.js
const aliSdk = require("../../utils/aliIot-sdk.js")
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    deviceName: '',
    sign_result: "0",
    product_type: '',
    code: '',
    openid: '',
    login_text: '立即登录',
    userInfo: null, // 存储用户信息
    options: ['超声波岩盐气溶胶治疗仪', '盐氧超声波岩盐气溶胶治疗仪'], // 下拉选择的选项
    selectedOption: '请选择产品类型  ➤', // 当前选择的选项
    isHiddin: true,
    scanResult: '', // 存储扫描结果
    user_email: '',
    user_phone: '',
    user_descript: '',

  },
  /**
   * 获取头像
   * @param {} options 
   */
  getAcatar: function (e) {

    this.setData({
      avatarUrl: e.detail.avatarUrl
    })
  },
  /**
   * 
   * @param {获取昵称} e 
   */
  get_nickname(e) {

    this.setData({
      nickname: e.detail.value
    })
  },

  /**
   * 去登录
   */
  goLogin() {
    this.setData({
      isHiddin: false,
      isLogin: false
    })
  },
  /**
   * 
   * 退出登录
   */
  get_out() {
    this.setData({
      userInfo: null
    })
    wx.setStorageSync("userinfo", null)
  },

  /**
   * 
   * 弹窗登录
   */
  pop_no() {
    this.setData({
      isHiddin: true
    })
  },
  /**
   * 按钮确定
   */
  pop_yes() {
    let avatarUrl = this.data.avatarUrl;
    let nickname = this.data.nickname;
    if (!avatarUrl) {
      wx.showToast({
        title: '请获取头像',
        icon: 'error'
      })
      return
    }
    if (!nickname) {
      wx.showToast({
        title: '请获取昵称',
        icon: 'error'
      })
      return
    }
    let userInfo = {}
    userInfo.avatarUrl = avatarUrl;
    userInfo.nickname = nickname;
    wx.setStorageSync('userinfo', userInfo);
    this.setData({
      isHiddin: true,
      userInfo: userInfo
    })

  },
  user_info: function () {
    wx.navigateTo({
      url: '/pages/user_info/user_info'
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    const value = wx.getStorageSync('dev_name'); // 从本地获取值
    const product_type = wx.getStorageSync('product_type'); // 从本地获取值

    if (value && product_type) {
      if (product_type == 'a11uQJCzUPe') {
        // 西纳舒岩盐气溶胶治疗仪
        this.setData({
          deviceName: value,   // 也将输入框的值设置为存储的值
          selectedOption: this.data.options[0]
        });
      }
      if (product_type == 'a1L4GogBzON') {
        // 盐氧一体机
        this.setData({
          deviceName: value,   // 也将输入框的值设置为存储的值
          selectedOption: this.data.options[1]
        });
      }
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    let userInfo = wx.getStorageSync('userinfo');
    let user_email = wx.getStorageSync('user_email');
    let user_phone = wx.getStorageSync('user_phone');
    let user_descript = wx.getStorageSync('user_descript');
    if (userInfo && userInfo.nickname) {
      this.setData({
        userInfo: userInfo,
        user_email: user_email,
        user_phone: user_phone,
        user_descript: user_descript
      })
    } else {

    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  /**
     * 设备编码输入
     * @param {*} e 
     */
  bindKeyInput: function (e) {
    const that = this;
    const regex = /^KC\d{10}$/;
    wx.scanCode({
      onlyFromCamera: false, // 只允许从相机扫码
      success(res) {
        // 正则校验输入的机器编码
        if (regex.test(res.result)) {
          that.setData({
            deviceName: res.result
          });
          that.saveInput();
          wx.showToast({
            title: '保存成功',
            icon: 'success',
            duration: 2000.
          });
          that.loadData();
        } else {
          wx.showToast({
            title: '设备编码无效!',
            icon: 'error',
            duration: 3000
          });
        }

        // // 成功回调，处理扫描结果
        // that.setData({
        //   scanResult: res.result // 将扫描结果存储到 data 中
        // });
      },
      fail(err) {
        // 失败回调，处理错误
        wx.showToast({
          title: '扫码失败',
          icon: 'none'
        });
      }
    });
  },
  /**
   * 选择产品
   */
  onPickerChange: function (event) {
    const selectedIndex = event.detail.value; // 获取选择的索引
    if (selectedIndex == 0) {
      // 西纳舒岩盐气溶胶治疗仪
      this.setData({
        selectedOption: this.data.options[selectedIndex], // 根据索引更新选择的值
        product_type: 'a11uQJCzUPe'
      });
      this.saveProduct_typeInput();
    }
    // 制氧超声波岩盐气溶胶治疗仪
    if (selectedIndex == 1) {
      this.setData({
        selectedOption: this.data.options[selectedIndex], // 根据索引更新选择的值
        product_type: 'a1L4GogBzON'
      });
      this.saveProduct_typeInput();
    }
  },
  /**
   * 校验按钮--查询云端设备是否存在
   */
  devname_verify: function () {
    var result = this.loadData();
    if (result === 1) {
      wx.showToast({
        title: '机器编码正确',
        icon: 'success',
        duration: 1000,
      });
      // 登录成功后跳转
      wx.switchTab({
        url: '/pages/wifi/wifi' // 跳转到主页
      });
    } else {
      this.setData({
        deviceName: '',
        selectedOption: '请选择产品类型 '
      });
      this.save_null_Input();
      wx.showToast({
        title: '编码错误/型号不匹配',
        icon: 'error',
        duration: 3000,
      });
    }
  },


  /**
 * 从本地缓存中取出设备编号
 */
  get_local_devname: function () {
    const value = wx.getStorageSync('dev_name'); // 从本地获取值
    if (value) {
      this.setData({
        dev_name: value   // 也将输入框的值设置为存储的值
      });
    }
    return value;
  },

  /**
   * 跟云平台通讯,查看是否有此设备编码
   * 通过封装的sdk读取物联网平台数据
   */
  loadData: function () {
    aliSdk.request({
      Action: "QueryDevicePropertyStatus",
      ProductKey: this.get_Product_type(),
      DeviceName: this.get_local_devname(),
    }, {
      method: "POST"
    },
      (res) => {
        // 登录成功
        if (res.data.Success) {
          this.setData({
            sign_result: 1
          });
        } else {
          this.setData({
            sign_result: 2
          });
          wx.showToast({
            title: '编码/型号不匹配',
            icon: 'error',
            duration: 3000,
          });
        }
      }
    )
    return this.data.sign_result;
  },


  // 存储设备编码
  saveInput: function () {
    const value = this.data.deviceName; // 获取输入框的值
    wx.setStorageSync('dev_name', value); // 存储到本地
    wx.showToast({
      title: '保存成功',
      icon: 'success'
    });
  },
  // 存储产品类型
  saveProduct_typeInput: function () {
    const value = this.data.product_type; // 获取输入框的值
    wx.setStorageSync('product_type', value); // 存储到本地
    wx.showToast({
      title: '保存成功',
      icon: 'success'
    });
  },

  /**
 * 从本地缓存中取出设备编号
 */
  get_Product_type: function () {
    const value = wx.getStorageSync('product_type'); // 从本地获取值
    if (value) {
      this.setData({
        product_type: value   // 也将输入框的值设置为存储的值
      });
    }
    return value;
  },

  // 存储空的值
  save_null_Input: function () {
    const pr_type = this.data.selectedOption;

    const value = ""; // 获取输入框的值
    wx.setStorageSync('dev_name', value); // 存储到本地
    wx.setStorageSync('product_type', pr_type); // 存储到本地
    wx.showToast({
      title: '保存成功',
      icon: 'success'
    });
  },
  // 客服
  dj: function () {
    wx.openCustomerServiceChat({
      extInfo: { url: 'https://work.weixin.qq.com/kfid/kfcce98c6493f0580be' },
      corpId: 'wwb05f293229e784ad',
      success(res) { }
    })
  },
  //将返回结果转成key,value的json格式方便使用
  convertPropertyStatusInfo: function (infos) {
    var data = {}
    infos.forEach((item) => {
      data[item.Identifier] = item.Value ? item.Value : null
    })
    return data
  },
  /**
   * 用户邮箱
   */
  user_email() {
    const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
    wx.showModal({
      title: '提示',
      content: '',
      placeholderText: '请输入邮箱',
      editable: true,
      showCancel: true,
      success: (res) => {
        // 用户点击确定按钮
        if (res.confirm) {
          // 正则校验输入的机器编码
          if (regex.test(res.content)) {
            this.setData({
              user_email: res.content
            });
            wx.setStorageSync('user_email', res.content); // 存储到本地
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000.
            });
          } else {
            wx.showToast({
              title: '输入无效!',
              icon: 'error',
              duration: 3000
            });
          }
        }
      }
    });
  },
  /**
  * 用户电话
  */
  user_phone() {
    const regex = /^1[3-9]\d{9}$/;
    wx.showModal({
      title: '提示',
      content: '',
      placeholderText: '请输入电话',
      editable: true,
      showCancel: true,
      success: (res) => {
        // 用户点击确定按钮
        if (res.confirm) {
          // 正则校验输入的机器编码
          if (regex.test(res.content)) {
            this.setData({
              user_phone: res.content
            });
            wx.setStorageSync('user_phone', res.content); // 存储到本地
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000.
            });
          } else {
            wx.showToast({
              title: '输入无效!',
              icon: 'error',
              duration: 3000
            });
          }
        }
      }
    });
  },
  /**
  * 用户简介
  */
  user_descript() {
    let that = this
    const regex = /^[a-zA-Z0-9\u4e00-\u9fa5,.]{0,15}$/;
    wx.showModal({
      title: '提示',
      content: '',
      placeholderText: '请输入15个字语录',
      editable: true,
      showCancel: true,
      success(res) {
        if (res.confirm) {
          if (regex.test(res.content)) {
            that.setData({
              user_descript: res.content
            });
            wx.setStorageSync('user_descript', res.content); // 存储到本地
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000.
            });
          } else {
            wx.showToast({
              title: '输入无效!',
              icon: 'error',
              duration: 3000
            });
          }
        }
      }
    });
  }
})
